Proving Non-Deterministic Computations in Agda
نویسندگان
چکیده
We investigate proving properties of Curry programs using Agda. First, we address the functional correctness of Curry functions that, apart from some syntactic and semantic differences, are in the intersection of the two languages. Second, we use Agda to model non-deterministic functions with two distinct and competitive approaches incorporating the non-determinism. The first approach eliminates non-determinism by considering the set of all non-deterministic values produced by an application. The second approach encodes every non-deterministic choice that the application could perform. We consider our initial experiment a success. Although proving properties of programs is a notoriously difficult task, the functional logic paradigm does not seem to add any significant layer of difficulty or complexity to the task.
منابع مشابه
Agda as a platform for the development of verified railway interlocking systems
This thesis identifies a technological framework that aids the development of verified railway interlocking systems in the Agda theorem prover. The thesis is in two parts, Part I deals with integrating interactive and automated theorem proving in type theory, and Part II addresses verification in the
متن کاملA Tool for Automated Theorem Proving in Agda
We present a tool for automated theorem proving in Agda, an implementation of Martin-Löf’s intuitionistic type theory. The tool is intended to facilitate interactive proving by relieving the user from filling in simple but tedious parts of a proof. The proof search is conducted directly in type theory and produces proof terms. Any proof term is verified by the Agda type-checker, which ensures s...
متن کاملIntegrating an Automated Theorem Prover into Agda
Agda is a dependently typed functional programming language and a proof assistant in which developing programs and proving their correctness is one activity. We show how this process can be enhanced by integrating external automated theorem provers, provide a prototypical integration of the equational theorem prover Waldmeister, and give examples of how this proof automation works in practice.
متن کاملIntegrating Automated and Interactive Theorem Proving in Type Theory
We introduce an approach of integrating automated theorem proving techniques into the interactive theorem prover Agda. Our approach is generic and flexible, and can be combined with dependently typed programming. We have implemented the special cases of SAT solving and CTL model checking. The tool has been used for verifying the correctness of railway interlocking systems.
متن کاملTrace and Stable Failures Semantics for CSP-Agda
CSP-Agda is a library, which formalises the process algebra CSP in the interactive theorem prover Agda using coinductive data types. In CSP-Agda, CSP processes are in monadic form, which supports a modular development of processes. In this paper, we implement two main models of CSP, trace and stable failures semantics, in CSP-Agda, and define the corresponding refinement and equality relations....
متن کامل